from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):  # 基础精通
    名称 = '基础精通'
    倍率 = 1.0

    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110

    关联技能 = ['基本攻击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '基本攻击'
    备注 = '一轮'
    是否主动 = 0
    关联技能 = ['无']
    所在等级 = 1
    等级上限 = 1
    学习间隔 = 2  # 实际没有间隔
    等级精通 = 1
    # 平x第一击
    data0 = [int(i) for i in [235.924]]
    hit0 = 1
    # 平x第二击
    data1 = [int(i) for i in [262.165]]
    hit1 = 1
    # 平x第三击
    data2 = [int(i) for i in [296.684]]
    hit2 = 1
    # 平x第四击
    data3 = [int(i) for i in [296.684]]
    hit3 = 1
    TP成长 = 0.10
    TP上限 = 5
    CD = 1  # 也没有CD


class 技能2(主动技能):
    名称 = '刺击'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [6, 40]
    data0 = [(i*1.081) for i in [0, 1828, 2012, 2199, 2384, 2570, 2755, 2940, 3125, 3311, 3497, 3682, 3867, 4054, 4239, 4424, 4609, 4795, 4980, 5165, 5352, 5537, 5722, 5907, 6094, 6279, 6464, 6650, 6835, 7020, 7206, 7391, 7577, 7762, 7948, 8134,
                           8319, 8504, 8689, 8875, 9060, 9247, 9432, 9617, 9802, 9987, 10174, 10359, 10545, 10730, 10914, 11101, 11286, 11472, 11657, 11843, 12029, 12213, 12399, 12584, 12770, 12955, 13142, 13327, 13511, 13697, 13882, 14069, 14254, 14440, 14625]]
    hit0 = 1
    data1 = [(i*1.081) for i in [0, 1653, 1820, 1988, 2155, 2324, 2491, 2658, 2825, 2995, 3162, 3330, 3498, 3666, 3832, 4000, 4168, 4337, 4504, 4672, 4840, 5007, 5174, 5343, 5510, 5679, 5846, 6012, 6181, 6348, 6516, 6684, 6852, 7018, 7187, 7354,
                           7523, 7690, 7859, 8026, 8194, 8360, 8529, 8696, 8864, 9033, 9201, 9367, 9535, 9703, 9871, 10038, 10206, 10375, 10542, 10709, 10878, 11045, 11213, 11380, 11549, 11715, 11883, 12050, 12219, 12387, 12554, 12721, 12889, 13057, 13224]]
    hit1 = 0
    CD = 5.0
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["枪尾", "枪身"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "枪尾":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "枪身":
            self.hit0 = 0
            self.hit1 = 1


class 技能3(主动技能):
    名称 = '落凤枪'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [12, 125]
    data0 = [(i*1.085) for i in [0, 1524, 1679, 1833, 1989, 2143, 2299, 2453, 2607, 2761, 2918, 3072, 3227, 3381, 3535, 3691, 3846, 4000, 4155, 4310, 4464, 4618, 4773, 4929, 5084, 5238, 5392, 5546, 5702, 5857, 6012, 6166, 6321, 6476, 6630,
                           6784, 6940, 7095, 7249, 7404, 7558, 7713, 7869, 8023, 8177, 8332, 8487, 8641, 8796, 8951, 9107, 9261, 9415, 9569, 9724, 9880, 10035, 10189, 10343, 10498, 10653, 10808, 10962, 11118, 11272, 11426, 11581, 11735, 11892, 12046, 12200]]
    hit0 = 1
    data1 = [(i*1.085) for i in [0, 820, 903, 987, 1068, 1152, 1238, 1319, 1403, 1486, 1569, 1654, 1737, 1820, 1902, 1985, 2070, 2153, 2236, 2319, 2403, 2485, 2569, 2653, 2735, 2819, 2903, 2986, 3070, 3153, 3235, 3319, 3403, 3485,
                           3569, 3652, 3736, 3820, 3901, 3985, 4069, 4152, 4236, 4319, 4402, 4487, 4570, 4652, 4735, 4819, 4902, 4986, 5070, 5151, 5235, 5319, 5402, 5486, 5568, 5652, 5736, 5819, 5901, 5985, 6067, 6152, 6236, 6318, 6402, 6484, 6568]]
    hit1 = 0
    CD = 5.0
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = '扫堂枪'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [12, 120]
    data0 = [(i) for i in [0, 3063, 3373, 3685, 3995, 4307, 4619, 4928, 5240, 5550, 5860, 6172, 6482, 6794, 7103, 7415, 7727, 8036, 8348, 8658, 8970, 9281, 9591, 9902, 10213, 10523, 10835, 11145, 11457, 11766, 12078, 12389, 12699, 13010, 13321, 13632,
                           13944, 14253, 14565, 14876, 15186, 15497, 15808, 16118, 16430, 16740, 17052, 17361, 17673, 17984, 18295, 18605, 18916, 19227, 19539, 19848, 20160, 20469, 20781, 21092, 21403, 21713, 22024, 22335, 22647, 22956, 23268, 23578, 23890, 24200, 24511]]
    hit0 = 1
    CD = 5.0
    TP成长 = 0.1
    TP上限 = 7


class 技能5(主动技能):
    名称 = '行云：风'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [22, 280]
    # 刺击攻击力：<data0>%
    data0 = [(i*1.064) for i in [0, 158, 174, 189, 206, 222, 238, 254, 270, 286, 302, 318, 335, 350, 366, 382, 398, 415, 431, 446, 462, 479, 495, 511, 526, 543, 559, 575, 591, 607, 623, 639, 655, 672, 687,
                           703, 719, 736, 752, 767, 783, 799, 816, 832, 848, 863, 880, 896, 912, 928, 944, 960, 976, 992, 1009, 1024, 1040, 1056, 1073, 1089, 1104, 1120, 1137, 1153, 1169, 1184, 1201, 1217, 1233, 1249, 1264]]
    hit0 = 1
    # 旋风攻击力：<data1>%
    data1 = [(i) for i in [0, 263, 289, 316, 343, 369, 396, 423, 449, 476, 502, 529, 556, 582, 609, 636, 662, 689, 716, 742, 769, 796, 822, 849, 876, 902, 929, 955, 982, 1009, 1035, 1062, 1089, 1115, 1142, 1169,
                           1195, 1222, 1249, 1275, 1302, 1329, 1355, 1382, 1409, 1435, 1462, 1488, 1515, 1542, 1568, 1595, 1622, 1648, 1675, 1702, 1728, 1755, 1782, 1808, 1835, 1862, 1888, 1915, 1942, 1968, 1995, 2021, 2048, 2075, 2101]]
    hit1 = 8
    CD = 5
    TP成长 = 0.1
    TP上限 = 7


class 技能6(被动技能):
    名称 = '长枪精通'
    所在等级 = 15
    等级上限 = 30
    基础等级 = 20
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['流云幻灭', '极影无形杀', '问鼎·千军破云']

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 20:
            return round(1 + 0.01 * self.等级, 5)
        else:
            return round(0.8 + 0.02 * self.等级, 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 0.87


class 技能7(主动技能):
    名称 = '双重刺击'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [38, 290]
    # #第1击攻击力：<data0>%
    data0 = [(i*1.07) for i in [0, 2196, 2420, 2643, 2866, 3089, 3312, 3535, 3760, 3981, 4204, 4427, 4649, 4872, 5096, 5319, 5541, 5764, 5987, 6210, 6435, 6658, 6881, 7104, 7325, 7548, 7773, 7994, 8217, 8440, 8663, 8886, 9111, 9332, 9555, 9778, 10001,
                           10224, 10449, 10672, 10895, 11116, 11338, 11561, 11785, 12008, 12232, 12455, 12678, 12899, 13124, 13347, 13570, 13793, 14016, 14239, 14463, 14683, 14906, 15129, 15352, 15575, 15800, 16023, 16246, 16467, 16690, 16913, 17138, 17361, 17584]]
    hit0 = 1
    # #第1击枪尾攻击力：<data1>%
    data1 = [(i*1.07) for i in [0, 2659, 2929, 3200, 3471, 3740, 4011, 4280, 4549, 4819, 5089, 5359, 5630, 5900, 6169, 6438, 6708, 6979, 7249, 7518, 7790, 8059, 8328, 8599, 8868, 9138, 9408, 9679, 9948, 10217, 10489, 10758, 11028, 11297, 11566, 11838,
                           12107, 12378, 12647, 12917, 13187, 13456, 13726, 13997, 14268, 14537, 14807, 15076, 15346, 15615, 15888, 16157, 16426, 16697, 16966, 17236, 17505, 17775, 18047, 18316, 18586, 18855, 19125, 19396, 19665, 19935, 20205, 20476, 20745, 21015, 21285]]
    hit1 = 1
    # 近距离攻击和枪尾攻击不会同时命中一个敌人， 判定重叠时， 会优先判定为枪尾攻击
    # 第2击攻击力：<data2>%
    data2 = [(i*1.07) for i in [0, 2002, 2206, 2408, 2612, 2814, 3018, 3221, 3424, 3628, 3831, 4034, 4237, 4440, 4643, 4847, 5049, 5254, 5456, 5659, 5862, 6066, 6268, 6472, 6674, 6879, 7082, 7284, 7488, 7691, 7895, 8097, 8300, 8505, 8707, 8909, 9113,
                           9317, 9520, 9723, 9925, 10130, 10332, 10535, 10740, 10942, 11146, 11348, 11552, 11755, 11958, 12160, 12365, 12567, 12771, 12973, 13177, 13380, 13583, 13785, 13990, 14193, 14396, 14599, 14802, 15006, 15208, 15411, 15615, 15818, 16021]]
    hit2 = 0
    # 第2击枪尾攻击力：<data3>%
    data3 = [(i*1.07) for i in [0, 2224, 2449, 2676, 2903, 3128, 3354, 3579, 3804, 4031, 4257, 4482, 4707, 4933, 5158, 5386, 5612, 5837, 6062, 6288, 6513, 6740, 6965, 7191, 7416, 7642, 7870, 8095, 8320, 8546, 8771, 8997, 9223, 9449, 9674, 9900, 10125,
                           10353, 10578, 10804, 11029, 11255, 11480, 11707, 11932, 12158, 12383, 12608, 12834, 13062, 13287, 13513, 13738, 13963, 14190, 14416, 14641, 14866, 15092, 15317, 15545, 15771, 15996, 16221, 16447, 16672, 16899, 17124, 17350, 17575, 17801]]
    hit3 = 0
    CD = 7.0
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["枪尾", "枪身"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "枪尾":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 0
            self.hit3 = 0
        if 形态 == "枪身":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1
            self.hit3 = 1


class 技能8(主动技能):
    名称 = '行云：疾'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [40, 220]
    # 横扫攻击力：<data0>%
    data0 = [(i*1.05) for i in [0, 2932, 3231, 3529, 3826, 4124, 4421, 4719, 5016, 5314, 5611, 5909, 6206, 6504, 6801, 7099, 7397, 7695, 7993, 8290, 8588, 8885, 9183, 9480, 9778, 10075, 10373, 10670, 10968, 11265, 11563, 11861, 12159, 12457, 12754, 13052,
                           13349, 13647, 13944, 14242, 14539, 14837, 15134, 15432, 15730, 16027, 16326, 16623, 16921, 17218, 17516, 17813, 18111, 18408, 18706, 19003, 19301, 19599, 19896, 20194, 20491, 20790, 21087, 21385, 21682, 21980, 22277, 22575, 22872, 23170, 23468]]
    hit0 = 1
    CD = 6.0
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = '行云：落'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [70, 590]
    data0 = [(i*1.066) for i in [0, 4212, 4639, 5067, 5494, 5921, 6348, 6776, 7203, 7631, 8058, 8485, 8912, 9339, 9768, 10195, 10622, 11049, 11476, 11903, 12332, 12759, 13186, 13613, 14040, 14468, 14896, 15323, 15750, 16177, 16604, 17032, 17459, 17887, 18314,
                           18741, 19169, 19596, 20023, 20451, 20878, 21305, 21733, 22160, 22587, 23014, 23442, 23870, 24297, 24724, 25151, 25578, 26006, 26434, 26861, 27288, 27715, 28142, 28571, 28998, 29425, 29852, 30279, 30707, 31135, 31562, 31989, 32416, 32843, 33271, 33698]]
    hit0 = 1
    CD = 8.0
    TP成长 = 0.1
    TP上限 = 7


class 技能10(被动技能):
    名称 = '行云：沐'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return round(1.05 + 0.01 * self.等级, 5)
        else:
            return round(0.95 + 0.02 * self.等级, 5)


class 技能11(主动技能):
    名称 = '旋风枪'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [37, 370]
    data0 = [(i*1.075) for i in [0, 588, 648, 706, 767, 827, 886, 946, 1006, 1067, 1125, 1185, 1245, 1304, 1365, 1424, 1484, 1544, 1602, 1661, 1721, 1781, 1842, 1901, 1960, 2020, 2080, 2138, 2199, 2259, 2320, 2378, 2438, 2499, 2557,
                           2617, 2678, 2737, 2797, 2856, 2916, 2976, 3035, 3096, 3156, 3214, 3275, 3335, 3393, 3454, 3513, 3574, 3633, 3691, 3753, 3810, 3870, 3931, 3990, 4050, 4110, 4169, 4229, 4288, 4348, 4409, 4467, 4528, 4588, 4646, 4707]]
    hit0 = 11
    CD = 9
    TP成长 = 0.1
    TP上限 = 7


class 技能12(主动技能):
    名称 = '无畏波动枪'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [78, 800]
    # 普通突进攻击力：<data0>%
    data0 = [(i*1.095) for i in [0, 2077, 2288, 2498, 2709, 2920, 3130, 3341, 3552, 3763, 3973, 4184, 4396, 4607, 4817, 5028, 5239, 5450, 5660, 5871, 6082, 6292, 6503, 6714, 6926, 7136, 7347, 7557, 7767, 7978, 8189, 8399, 8610, 8821, 9032, 9242, 9453,
                           9665, 9876, 10086, 10297, 10508, 10719, 10929, 11140, 11351, 11561, 11772, 11983, 12194, 12405, 12616, 12827, 13038, 13248, 13458, 13669, 13879, 14090, 14301, 14511, 14722, 14933, 15145, 15355, 15566, 15777, 15988, 16198, 16409, 16620]]
    hit0 = 1
    # 普通刺击攻击力：<data1>%
    data1 = [(i*1.095) for i in [0, 4846, 5338, 5831, 6323, 6814, 7306, 7798, 8289, 8781, 9273, 9766, 10257, 10748, 11239, 11732, 12224, 12716, 13208, 13700, 14190, 14682, 15174, 15667, 16158, 16650, 17143, 17633, 18125, 18617, 19110, 19601, 20093, 20583, 21076,
                           21568, 22060, 22551, 23044, 23536, 24026, 24518, 25011, 25502, 25994, 26486, 26979, 27469, 27961, 28452, 28945, 29437, 29929, 30419, 30912, 31404, 31895, 32387, 32880, 33372, 33862, 34354, 34847, 35338, 35830, 36322, 36814, 37305, 37797, 38288, 38781]]
    hit1 = 1
    # 对被刺穿敌人的攻击力：<data2>%
    data2 = [(i*1.095) for i in [0, 1731, 1906, 2082, 2257, 2433, 2610, 2784, 2960, 3136, 3312, 3486, 3662, 3839, 4014, 4189, 4366, 4541, 4716, 4892, 5068, 5244, 5418, 5595, 5770, 5946, 6122, 6297, 6473, 6648, 6824, 7000, 7176, 7351, 7526, 7702,
                           7879, 8053, 8229, 8406, 8581, 8756, 8932, 9108, 9282, 9458, 9635, 9810, 9985, 10162, 10337, 10513, 10688, 10864, 11039, 11216, 11391, 11566, 11743, 11917, 12093, 12269, 12445, 12620, 12795, 12972, 13148, 13322, 13499, 13675, 13850]]
    hit2 = 0
    # 被刺穿后弹开时的攻击力：<data3>%
    data3 = [(i*1.095) for i in [0, 4155, 4576, 4998, 5418, 5841, 6262, 6684, 7105, 7526, 7948, 8369, 8792, 9213, 9635, 10056, 10478, 10899, 11322, 11743, 12163, 12585, 13006, 13428, 13850, 14272, 14693, 15114, 15536, 15957, 16379, 16801, 17223, 17644, 18064,
                           18486, 18907, 19330, 19751, 20173, 20594, 21016, 21437, 21859, 22281, 22703, 23124, 23545, 23966, 24387, 24810, 25231, 25653, 26074, 26495, 26917, 27340, 27761, 28182, 28604, 29025, 29447, 29868, 30291, 30711, 31132, 31554, 31975, 32397, 32819, 33241]]
    hit3 = 0
    # 弹开的敌人撞到地面时的冲撞攻击力：<data4>%
    data4 = [(i*1.095) for i in [0, 1039, 1144, 1250, 1355, 1460, 1566, 1671, 1777, 1882, 1986, 2091, 2197, 2302, 2407, 2513, 2618, 2724, 2829, 2934, 3040, 3145, 3250, 3356, 3462, 3568, 3673, 3778, 3884, 3989, 4094, 4200, 4305, 4410,
                           4516, 4621, 4727, 4832, 4937, 5043, 5148, 5253, 5359, 5464, 5569, 5675, 5780, 5885, 5991, 6096, 6203, 6308, 6413, 6519, 6624, 6730, 6835, 6940, 7046, 7151, 7256, 7362, 7467, 7572, 7678, 7783, 7888, 7993, 8098, 8203, 8309]]
    hit4 = 0
    # 弹开的敌人撞到墙壁时的冲撞攻击力：<data5>%
    data5 = [(i*1.095) for i in [0, 1176, 1296, 1416, 1534, 1654, 1773, 1893, 2014, 2131, 2252, 2371, 2491, 2610, 2730, 2849, 2968, 3088, 3207, 3327, 3445, 3565, 3685, 3804, 3924, 4042, 4162, 4282, 4401, 4521, 4639, 4760, 4879, 4999,
                           5119, 5238, 5357, 5476, 5596, 5715, 5835, 5954, 6073, 6193, 6312, 6432, 6550, 6670, 6790, 6909, 7029, 7147, 7268, 7388, 7507, 7627, 7746, 7865, 7984, 8104, 8224, 8343, 8462, 8581, 8701, 8820, 8940, 9059, 9178, 9298, 9417]]
    hit5 = 0
    CD = 9.0
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["非抓", "抓地", "抓墙"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "非抓":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 0
            self.hit5 = 0
        if 形态 == "抓地":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 1
            self.hit5 = 0
        if 形态 == "抓墙":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 0
            self.hit5 = 1


class 技能13(主动技能):
    名称 = '螺旋波动枪'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [78, 800]
    data0 = [int(i*1.051) for i in [0, 2136, 2352, 2570, 2786, 3002, 3220, 3436, 3652, 3870, 4086, 4302, 4520, 4737, 4954, 5170, 5387, 5604, 5820, 6037, 6254, 6470, 6687, 6904, 7121, 7337, 7555, 7771, 7987, 8205, 8421, 8637, 8854, 9071, 9287, 9504, 9721,
                              9939, 10155, 10371, 10589, 10805, 11021, 11239, 11455, 11671, 11889, 12105, 12321, 12539, 12756, 12973, 13189, 13406, 13623, 13839, 14056, 14273, 14489, 14706, 14923, 15139, 15356, 15573, 15790, 16006, 16223, 16440, 16656, 16873, 17090]]
    hit0 = 1
    data1 = [int(i*1.051) for i in [0, 3204, 3530, 3854, 4180, 4504, 4830, 5154, 5480, 5804, 6130, 6454, 6781, 7105, 7430, 7755, 8080, 8405, 8730, 9055, 9380, 9705, 10030, 10355, 10681, 11007, 11331, 11657, 11981, 12307, 12631, 12957, 13281, 13607, 13931, 14257,
                              14581, 14908, 15232, 15558, 15882, 16208, 16533, 16858, 17183, 17508, 17833, 18157, 18483, 18807, 19134, 19458, 19784, 20108, 20434, 20758, 21084, 21408, 21734, 22058, 22384, 22708, 23035, 23360, 23685, 24010, 24335, 24660, 24985, 25310, 25635]]
    hit1 = 1
    data2 = [int(i*1.051) for i in [0, 5340, 5882, 6424, 6966, 7507, 8048, 8590, 9132, 9674, 10216, 10756, 11301, 11843, 12383, 12925, 13467, 14009, 14551, 15093, 15633, 16175, 16717, 17259, 17802, 18344, 18886, 19428, 19969, 20510, 21052, 21594, 22136, 22678, 23219,
                              23761, 24302, 24846, 25387, 25929, 26471, 27013, 27554, 28096, 28638, 29179, 29721, 30262, 30804, 31346, 31890, 32431, 32973, 33515, 34056, 34598, 35139, 35681, 36223, 36765, 37307, 37847, 38392, 38933, 39474, 40016, 40558, 41100, 41642, 42184, 42724]]
    hit2 = 1
    CD = 15
    TP成长 = 0.1
    TP上限 = 5


class 技能14(主动技能):
    名称 = '升龙破空枪'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 横扫攻击力：<data0>%
    data0 = [(i*1.077) for i in [0, 2782, 3064, 3348, 3630, 3913, 4194, 4477, 4759, 5042, 5323, 5607, 5889, 6172, 6454, 6735, 7018, 7300, 7583, 7864, 8147, 8429, 8713, 8995, 9277, 9559, 9842, 10124, 10406, 10688, 10972, 11254, 11537, 11818, 12101, 12383,
                           12666, 12947, 13230, 13512, 13796, 14078, 14360, 14642, 14925, 15207, 15489, 15771, 16053, 16336, 16618, 16901, 17183, 17466, 17747, 18030, 18312, 18595, 18876, 19161, 19442, 19725, 20007, 20290, 20571, 20854, 21136, 21419, 21700, 21984, 22266]]
    hit0 = 1
    # 上挑攻击力：<data1>%
    data1 = [(i*1.077) for i in [0, 4174, 4599, 5021, 5445, 5868, 6291, 6716, 7140, 7562, 7986, 8411, 8833, 9257, 9680, 10103, 10528, 10951, 11374, 11798, 12223, 12645, 13069, 13492, 13916, 14340, 14763, 15186, 15610, 16035, 16457, 16881, 17304, 17728, 18152,
                           18575, 18998, 19422, 19846, 20269, 20693, 21115, 21540, 21964, 22386, 22810, 23235, 23657, 24081, 24505, 24927, 25352, 25776, 26198, 26622, 27047, 27469, 27893, 28317, 28739, 29164, 29588, 30010, 30434, 30859, 31281, 31705, 32129, 32551, 32976, 33400]]
    hit1 = 1
    # 最后一击攻击力：<data2>%
    data2 = [(i*1.077) for i in [0, 5692, 6269, 6848, 7425, 8001, 8581, 9157, 9736, 10313, 10890, 11469, 12045, 12623, 13201, 13778, 14356, 14933, 15511, 16088, 16666, 17244, 17820, 18399, 18976, 19554, 20132, 20708, 21287, 21864, 22441, 23020, 23597, 24174, 24752,
                           25329, 25907, 26485, 27062, 27640, 28217, 28795, 29373, 29951, 30527, 31105, 31683, 32260, 32839, 33415, 33992, 34571, 35148, 35726, 36303, 36880, 37459, 38036, 38614, 39192, 39768, 40346, 40924, 41502, 42078, 42656, 43234, 43811, 44390, 44967, 45543]]
    hit2 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [115, 1150]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.19
        self.CDR *= 0.88


class 技能15(主动技能):
    名称 = '狂龙怒啸'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 旋转攻击力：<data0>%
    data0 = [(i*1.134) for i in [0, 787, 868, 948, 1028, 1109, 1189, 1268, 1349, 1429, 1509, 1590, 1670, 1748, 1830, 1909, 1989, 2068, 2149, 2229, 2309, 2390, 2470, 2549, 2630, 2710, 2790, 2871, 2951, 3029, 3110, 3190, 3270, 3350,
                           3430, 3510, 3590, 3671, 3750, 3830, 3911, 3991, 4071, 4152, 4231, 4310, 4391, 4471, 4550, 4631, 4711, 4791, 4871, 4952, 5031, 5111, 5192, 5272, 5352, 5433, 5511, 5591, 5672, 5752, 5831, 5912, 5992, 6072, 6152, 6232, 6312]]
    hit0 = 15
    CD = 20
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [73, 890]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.1*1.08
        self.CDR *= 0.76


class 技能16(主动技能):
    名称 = '夺命雷霆枪'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 近距离刺击攻击力：<data0>%
    data0 = [(i*1.05) for i in [0, 999, 1102, 1203, 1305, 1406, 1506, 1609, 1711, 1812, 1913, 2015, 2116, 2218, 2319, 2421, 2522, 2625, 2725, 2827, 2928, 3030, 3132, 3233, 3334, 3437, 3537, 3640, 3741, 3841, 3944, 4044, 4146, 4249,
                           4349, 4451, 4553, 4653, 4756, 4857, 4959, 5060, 5161, 5263, 5365, 5465, 5568, 5669, 5771, 5872, 5974, 6075, 6177, 6279, 6379, 6481, 6582, 6684, 6787, 6887, 6988, 7091, 7191, 7293, 7395, 7496, 7598, 7699, 7800, 7903, 8003]]
    hit0 = 0
    # 引起受创效果的刺击攻击力：<data1>%
    data1 = [(i*1.05) for i in [0, 999, 1102, 1203, 1305, 1406, 1506, 1609, 1711, 1812, 1913, 2015, 2116, 2218, 2319, 2421, 2522, 2625, 2725, 2827, 2928, 3030, 3132, 3233, 3334, 3437, 3537, 3640, 3741, 3841, 3944, 4044, 4146, 4249,
                           4349, 4451, 4553, 4653, 4756, 4857, 4959, 5060, 5161, 5263, 5365, 5465, 5568, 5669, 5771, 5872, 5974, 6075, 6177, 6279, 6379, 6481, 6582, 6684, 6787, 6887, 6988, 7091, 7191, 7293, 7395, 7496, 7598, 7699, 7800, 7903, 8003]]
    hit1 = 15
    # 每1次刺击对应的横斩攻击力：<data2>%
    data2 = [(i) for i in [0, 181, 199, 217, 237, 255, 274, 292, 310, 330, 347, 366, 384, 402, 422, 440, 459, 477, 495, 513, 532, 550, 569, 587, 606, 625, 643, 662, 679, 698, 716, 734, 754, 772, 791, 809,
                           827, 846, 864, 882, 901, 919, 939, 957, 975, 993, 1011, 1030, 1049, 1067, 1086, 1104, 1123, 1142, 1158, 1178, 1196, 1214, 1233, 1251, 1271, 1289, 1307, 1325, 1343, 1363, 1381, 1399, 1418, 1436, 1456]]
    hit2 = 15
    # 最后横斩攻击力：<data3>%
    data3 = [(i) for i in [0, 10914, 12022, 13129, 14236, 15344, 16451, 17557, 18666, 19773, 20879, 21988, 23095, 24201, 25310, 26417, 27523, 28632, 29739, 30845, 31954, 33061, 34167, 35275, 36383, 37489, 38597, 39705, 40811, 41919, 43027, 44133, 45241, 46349,
                           47455, 48563, 49671, 50777, 51885, 52991, 54099, 55207, 56313, 57421, 58529, 59635, 60743, 61851, 62957, 64065, 65173, 66279, 67386, 68495, 69601, 70708, 71817, 72923, 74030, 75139, 76245, 77352, 78461, 79567, 80674, 81783, 82889, 83996, 85104, 86211, 87318]]
    hit3 = 1
    CD = 47
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    CP武器 = False

    MP = [375, 3200]
    无色消耗 = 2

    形态 = ["枪尾", "枪身"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "枪尾":
            self.hit0 = 0
            self.hit1 = 15
            self.hit2 = 15
            self.hit3 = 1
            if self.CP武器:
                self.hit1 += 30
                self.hit2 += 30
        if 形态 == "枪身":
            self.hit0 = 15
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 1

    def 装备护石(self):
        self.power3 = 1.86


class 技能17(被动技能):
    名称 = '行云：启'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['基本攻击', '刺击', '落凤枪', '扫堂枪', '双重刺击', '旋风枪', '无畏波动枪', '螺旋波动枪', '升龙破空枪', '狂龙怒啸',
            '夺命雷霆枪', '流云幻灭', '风火燎原', '三一斩月', '无双突刺', '流光无影闪', '极影无形杀', '双龙流云灭', '问鼎·千军破云']
    关联技能1 = ['行云：风']
    关联技能2 = ['行云：疾']
    关联技能3 = ['行云：落']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.06 + 0.015 * self.等级, 5)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.095 + 0.015 * self.等级, 5)

    def 加成倍率2(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.080 + 0.015 * self.等级, 5)

    def 加成倍率3(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.075 + 0.015 * self.等级, 5)


class 技能18(主动技能):
    名称 = '流云幻灭'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # Lv3特效的额外10%攻击力已经直接改变了技能面板,不用额外乘
    # 第一击攻击力：<data0>%
    data0 = [(i*1.067) for i in [0, 1147, 1415, 1681, 1947, 2213, 2479, 2745, 3011, 3278, 3545, 3811, 4078, 4344, 4610, 4875, 5142, 5408, 5674, 5942, 6208, 6474, 6741, 7007, 7272, 7538, 7806, 8072, 8338, 8605, 8871, 9137, 9403, 9671, 9935, 10201, 10469,
                           10735, 11001, 11268, 11534, 11800, 12066, 12334, 12599, 12865, 13132, 13398, 13664, 13930, 14198, 14464, 14730, 14996, 15262, 15528, 15794, 16061, 16327, 16594, 16861, 17127, 17393, 17658, 17925, 18191, 18457, 18725, 18991, 19257, 19524]]
    hit0 = 1
    # 第2击攻击力：<data1>%
    data1 = [(i*1.067) for i in [0, 2870, 3536, 4202, 4868, 5534, 6199, 6865, 7531, 8196, 8863, 9528, 10194, 10859, 11526, 12192, 12858, 13522, 14189, 14855, 15521, 16185, 16851, 17518, 18183, 18849, 19514, 20181, 20846, 21512, 22178, 22845, 23509, 24175, 24841,
                           25507, 26173, 26838, 27504, 28170, 28836, 29502, 30166, 30833, 31499, 32165, 32829, 33496, 34162, 34828, 35493, 36159, 36826, 37490, 38156, 38822, 39489, 40153, 40819, 41485, 42152, 42817, 43482, 44148, 44815, 45480, 46146, 46812, 47477, 48143, 48809]]
    hit1 = 1
    # 第3击攻击力：<data2>%
    data2 = [(i*1.067) for i in [0, 3445, 4243, 5042, 5842, 6640, 7440, 8239, 9037, 9835, 10635, 11433, 12233, 13032, 13832, 14630, 15429, 16228, 17026, 17825, 18625, 19423, 20222, 21022, 21819, 22618, 23418, 24217, 25016, 25815, 26614, 27413, 28211, 29010, 29809,
                           30608, 31408, 32206, 33005, 33805, 34602, 35401, 36201, 37000, 37798, 38598, 39397, 40196, 40994, 41793, 42592, 43391, 44190, 44989, 45788, 46588, 47386, 48184, 48984, 49783, 50581, 51381, 52180, 52977, 53777, 54576, 55374, 56174, 56973, 57772, 58571]]
    hit2 = 1
    # 第4击攻击力：<data3>%
    data3 = [(i*1.067) for i in [0, 4019, 4951, 5883, 6815, 7747, 8678, 9612, 10543, 11475, 12407, 13339, 14271, 15203, 16136, 17068, 18000, 18932, 19864, 20795, 21727, 22662, 23594, 24525, 25457, 26389, 27321, 28253, 29186, 30118, 31050, 31982, 32914, 33846, 34778,
                           35709, 36643, 37574, 38506, 39438, 40370, 41302, 42234, 43167, 44099, 45031, 45963, 46895, 47826, 48758, 49691, 50623, 51555, 52487, 53419, 54351, 55283, 56216, 57148, 58080, 59012, 59944, 60875, 61807, 62739, 63672, 64604, 65536, 66468, 67400, 68332]]
    hit3 = 1
    # 第5击攻击力：<data4>%
    data4 = [(i*1.067) for i in [0, 4593, 5659, 6723, 7789, 8854, 9920, 10984, 12050, 13115, 14180, 15246, 16311, 17376, 18442, 19506, 20572, 21637, 22703, 23768, 24833, 25898, 26962, 28029, 29093, 30159, 31225, 32289, 33354, 34419, 35485, 36551, 37615, 38681, 39745,
                           40811, 41876, 42942, 44007, 45072, 46137, 47202, 48268, 49334, 50398, 51464, 52528, 53594, 54660, 55725, 56790, 57855, 58920, 59984, 61051, 62117, 63181, 64247, 65311, 66377, 67443, 68508, 69573, 70637, 71703, 72767, 73833, 74900, 75964, 77030, 78094]]
    hit4 = 1
    # 第6击攻击力：<data5>%
    data5 = [(i*1.067) for i in [0, 1722, 2121, 2521, 2921, 3319, 3719, 4119, 4517, 4918, 5317, 5717, 6116, 6515, 6916, 7314, 7714, 8114, 8513, 8912, 9313, 9711, 10110, 10511, 10909, 11309, 11709, 12109, 12507, 12907, 13307, 13705, 14106, 14505, 14904, 15304,
                           15703, 16102, 16502, 16902, 17300, 17701, 18100, 18501, 18899, 19298, 19699, 20097, 20497, 20897, 21296, 21695, 22095, 22494, 22893, 23294, 23692, 24092, 24492, 24890, 25290, 25690, 26089, 26488, 26889, 27287, 27686, 28087, 28485, 28885, 29285]]
    hit5 = 3
    # 第7击攻击力：<data6>%
    data6 = [(i*1.067) for i in [0, 5168, 6366, 7564, 8763, 9961, 11159, 12358, 13556, 14754, 15952, 17151, 18350, 19548, 20747, 21945, 23143, 24342, 25540, 26738, 27938, 29136, 30334, 31532, 32731, 33929, 35127, 36326, 37524, 38722, 39921, 41119, 42317, 43516, 44714,
                           45912, 47110, 48309, 49507, 50705, 51904, 53104, 54302, 55501, 56699, 57897, 59096, 60294, 61492, 62690, 63889, 65087, 66285, 67484, 68682, 69880, 71079, 72277, 73475, 74674, 75872, 77070, 78268, 79468, 80666, 81864, 83063, 84261, 85459, 86659, 87857]]
    hit6 = 1
    # 第8击攻击力：<data7>%
    data7 = [(i*1.067) for i in [0, 5741, 7074, 8404, 9737, 11067, 12400, 13730, 15063, 16394, 17726, 19057, 20389, 21720, 23052, 24383, 25715, 27047, 28378, 29710, 31042, 32373, 33704, 35035, 36367, 37698, 39030, 40362, 41693, 43025, 44357, 45688, 47019, 48351, 49682,
                           51015, 52345, 53678, 55008, 56341, 57672, 59004, 60335, 61668, 62998, 64330, 65661, 66993, 68325, 69656, 70988, 72318, 73651, 74982, 76313, 77645, 78976, 80308, 81640, 82971, 84303, 85635, 86966, 88298, 89629, 90960, 92293, 93623, 94956, 96286, 97619]]
    hit7 = 1
    # 斗气长枪攻击力：<data8>%
    data8 = [(i*1.067) for i in [0, 28712, 35369, 46228, 53553, 60875, 68199, 75522, 82847, 90170, 97493, 104817, 112141, 119464, 126787, 134110, 141435, 148758, 156082, 163404, 170730, 178052, 185375, 192699, 200022, 207347, 214670, 221992, 229316, 236640, 243964, 251287, 258610, 265935, 273257,
                           280581, 287904, 295229, 302552, 309875, 317199, 324523, 331846, 339169, 346492, 353817, 361140, 368464, 375786, 383112, 390434, 397757, 405081, 412404, 419729, 427052, 434374, 441698, 449022, 456346, 463669, 470993, 478317, 485639, 492963, 500286, 507611, 514934, 522257, 529581, 536905]]
    hit8 = 1
    CD = 145

    MP = [1000, 8400]
    无色消耗 = 5


class 技能19(主动技能):
    名称 = '风火燎原'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [(i*1.086) for i in [0, 1474, 1623, 1774, 1924, 2073, 2223, 2372, 2522, 2672, 2821, 2971, 3120, 3270, 3419, 3569, 3719, 3868, 4019, 4168, 4318, 4468, 4617, 4767, 4916, 5066, 5215, 5365, 5515, 5664, 5814, 5963, 6113, 6262, 6413,
                           6563, 6712, 6862, 7011, 7161, 7309, 7459, 7609, 7758, 7908, 8057, 8207, 8356, 8506, 8655, 8806, 8956, 9105, 9255, 9405, 9554, 9704, 9853, 10003, 10152, 10302, 10452, 10601, 10751, 10900, 11051, 11201, 11350, 11500, 11649, 11799]]
    hit0 = 20
    CD = 30.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [500, 1300]
    无色消耗 = 1

    def 装备护石(self):
        self.hit0 = 30
        self.倍率 *= 0.91


class 技能20(主动技能):
    名称 = '三一斩月'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 枪身攻击力：<data0>%
    data0 = [(i*1.143) for i in [0, 780, 859, 938, 1017, 1095, 1174, 1255, 1334, 1413, 1492, 1571, 1650, 1730, 1810, 1888, 1967, 2046, 2125, 2204, 2283, 2363, 2443, 2521, 2600, 2679, 2758, 2837, 2916, 2997, 3076, 3155, 3233, 3312,
                           3391, 3470, 3551, 3630, 3709, 3788, 3866, 3945, 4024, 4105, 4184, 4263, 4342, 4421, 4500, 4578, 4659, 4738, 4817, 4896, 4975, 5054, 5133, 5211, 5292, 5371, 5450, 5529, 5608, 5687, 5766, 5847, 5926, 6004, 6083, 6162, 6241]]
    hit0 = 1
    # [三一斩月]攻击力：<data1>%
    data1 = [(i*1.143) for i in [0, 4778, 5263, 5747, 6232, 6717, 7202, 7688, 8173, 8658, 9142, 9627, 10112, 10597, 11082, 11567, 12051, 12536, 13021, 13506, 13991, 14475, 14960, 15445, 15930, 16415, 16899, 17386, 17870, 18354, 18839, 19324, 19808, 20293, 20778,
                           21263, 21748, 22232, 22717, 23202, 23687, 24172, 24657, 25141, 25626, 26111, 26596, 27081, 27565, 28052, 28536, 29021, 29506, 29991, 30476, 30960, 31445, 31930, 32415, 32900, 33384, 33869, 34354, 34839, 35324, 35809, 36293, 36777, 37262, 37747, 38231]]
    hit1 = 8
    CD = 50.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [770, 1800]
    无色消耗 = 2

    def 装备护石(self):
        self.倍率 *= 1.31


class 技能21(主动技能):
    名称 = '无双突刺'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 第1~2击攻击力：<data0>%
    data0 = [(i*1.051) for i in [0, 3818, 4207, 4593, 4981, 5370, 5756, 6143, 6532, 6918, 7306, 7693, 8081, 8470, 8856, 9244, 9632, 10019, 10406, 10794, 11181, 11569, 11956, 12344, 12731, 13119, 13506, 13893, 14281, 14669, 15055, 15444, 15831, 16219, 16606, 16993,
                           17381, 17769, 18155, 18544, 18932, 19318, 19707, 20093, 20480, 20869, 21255, 21644, 22032, 22418, 22807, 23193, 23581, 23969, 24356, 24743, 25132, 25518, 25906, 26293, 26681, 27069, 27456, 27843, 28232, 28618, 29006, 29393, 29781, 30168, 30556]]
    hit0 = 2
    # 第3~4击攻击力：<data1>%
    data1 = [(i*1.051) for i in [0, 24092, 26535, 28980, 31424, 33869, 36313, 38757, 41201, 43646, 46089, 48534, 50978, 53422, 55866, 58311, 60755, 63198, 65643, 68087, 70531, 72976, 75420, 77864, 80307, 82752, 85196, 87641, 90085, 92529, 94973, 97416, 99861, 102306, 104750, 107194, 109638,
                           112082, 114525, 116972, 119415, 121859, 124303, 126747, 129191, 131637, 134081, 136525, 138968, 141412, 143856, 146302, 148746, 151190, 153634, 156077, 158521, 160966, 163411, 165855, 168299, 170743, 173186, 175631, 178075, 180520, 182964, 185408, 187852, 190297, 192740]]
    hit1 = 0
    # 第3~4击枪尾攻击力：<data2>%
    data2 = [(i*1.051) for i in [0, 27031, 29772, 32514, 35257, 38000, 40742, 43483, 46226, 48968, 51710, 54453, 57196, 59937, 62679, 65422, 68165, 70906, 73648, 76391, 79133, 81874, 84617, 87360, 90102, 92844, 95587, 98330, 101070, 103813, 106556, 109298, 112039, 114782, 117525, 120267,
                           123009, 125751, 128494, 131235, 133978, 136721, 139462, 142204, 144947, 147690, 150432, 153173, 155916, 158659, 161400, 164143, 166885, 169628, 172369, 175112, 177855, 180595, 183338, 186081, 188824, 191564, 194307, 197050, 199793, 202534, 205277, 208020, 210760, 213503, 216246]]
    hit2 = 2
    CD = 33.0
    是否有护石 = 1

    MP = [600, 4550]
    无色消耗 = 3

    形态 = ["枪尾", "枪身"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "枪尾":
            self.hit0 = 2
            self.hit1 = 0
            self.hit2 = 2
        if 形态 == "枪身":
            self.hit0 = 2
            self.hit1 = 2
            self.hit2 = 0

    def 装备护石(self):
        self.power0 = 0
        self.power1 = 1.45
        self.power2 = 1.45
        self.CDR *= 0.9


class 技能22(被动技能):
    名称 = '行云：冥'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['基本攻击', '落凤枪', '扫堂枪', '旋风枪', '无畏波动枪', '螺旋波动枪', '升龙破空枪', '狂龙怒啸',
            '夺命雷霆枪', '流云幻灭', '风火燎原', '三一斩月', '无双突刺', '流光无影闪', '极影无形杀', '双龙流云灭', '问鼎·千军破云']
    关联技能1 = ['行云：风', '行云：疾', '行云：落', '刺击', '双重刺击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.16 + 0.02 * self.等级, 5)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.17 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = '流光无影闪'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 突进攻击力：<data0>%
    data0 = [(i*1.085) for i in [0, 6274, 6912, 7548, 8184, 8822, 9457, 10094, 10732, 11367, 12005, 12642, 13277, 13915, 14550, 15187, 15825, 16460, 17097, 17735, 18370, 19008, 19644, 20280, 20918, 21554, 22190, 22828, 23464, 24100, 24737, 25374, 26009, 26647, 27284,
                           27921, 28557, 29193, 29830, 30467, 31102, 31740, 32377, 33012, 33650, 34287, 34923, 35560, 36197, 36833, 37470, 38106, 38743, 39380, 40016, 40653, 41289, 41927, 42563, 43199, 43837, 44473, 45109, 45747, 46382, 47019, 47656, 48292, 48929, 49565, 50202]]
    hit0 = 1
    # 终结攻击力：<data1>%
    data1 = [(i*1.085) for i in [0, 63450, 69888, 76325, 82761, 89199, 95636, 102072, 108511, 114947, 121383, 127821, 134258, 140695, 147132, 153569, 160007, 166443, 172881, 179318, 185754, 192193, 198629, 205065, 211503, 217940, 224378, 230814, 237251, 243689, 250125, 256563, 263000, 269436, 275875,
                           282311, 288747, 295184, 301622, 308059, 314496, 320933, 327370, 333807, 340245, 346682, 353118, 359556, 365993, 372430, 378866, 385304, 391741, 398177, 404616, 411052, 417488, 423927, 430363, 436800, 443238, 449674, 456112, 462548, 468985, 475423, 481859, 488298, 494734, 501170, 507609]]
    hit1 = 1
    CD = 44
    是否有护石 = 1

    MP = [550, 4600]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 *= 1.2*1.14
        self.CDR *= 0.88


class 技能24(主动技能):
    名称 = '极影无形杀'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 第1次刺击攻击力：<data0>%
    data0 = [(i*1.112) for i in [0, 14894, 18348, 21801, 25255, 28709, 32164, 35618, 39072, 42525, 45979, 49433, 52887, 56341, 59793, 63247, 66701, 70155, 73609, 77062, 80517, 83971, 87425, 90879, 94333, 97786, 101240, 104694, 108148, 111602, 115055, 118509, 121964, 125418, 128872, 132325,
                           135779, 139233, 142687, 146141, 149593, 153047, 156501, 159955, 163411, 166865, 170317, 173771, 177225, 180679, 184133, 187586, 191040, 194494, 197948, 201402, 204855, 208309, 211764, 215218, 218672, 222126, 225579, 229033, 232487, 235941, 239395, 242847, 246301, 249755, 253211]]
    hit0 = 1
    # 乱舞斩击攻击力：<data1>%
    data1 = [(i*1.112) for i in [0, 8274, 10193, 12112, 14031, 15949, 17868, 19788, 21706, 23624, 25543, 27463, 29381, 31299, 33218, 35138, 37057, 38974, 40894, 42813, 44732, 46649, 48569, 50488, 52407, 54325, 56244, 58163, 60082, 62002, 63920, 65838, 67757, 69677, 71595, 73513,
                           75432, 77352, 79270, 81189, 83107, 85027, 86945, 88864, 90784, 92702, 94620, 96539, 98459, 100377, 102295, 104214, 106134, 108053, 109970, 111889, 113809, 115728, 117645, 119564, 121484, 123403, 125321, 127239, 129159, 131078, 132996, 134916, 136834, 138753, 140671]]
    hit1 = 7
    # 乱舞刺击攻击力：<data2>%
    data2 = [(i*1.112) for i in [0, 3309, 4077, 4845, 5613, 6380, 7148, 7914, 8682, 9449, 10217, 10984, 11752, 12519, 13288, 14055, 14823, 15589, 16357, 17124, 17892, 18659, 19427, 20194, 20963, 21730, 22498, 23265, 24032, 24799, 25567, 26334, 27102, 27869, 28638,
                           29405, 30173, 30941, 31708, 32475, 33242, 34010, 34777, 35546, 36313, 37081, 37848, 38616, 39383, 40151, 40917, 41685, 42452, 43221, 43988, 44756, 45523, 46291, 47058, 47826, 48592, 49360, 50127, 50896, 51663, 52431, 53198, 53966, 54733, 55501, 56267]]
    hit2 = 17
    # 最后一击攻击力：<data3>%
    data3 = [(i*1.112) for i in [0, 36408, 44851, 53294, 61736, 70180, 78623, 87065, 95508, 103950, 112393, 120836, 129278, 137722, 146165, 154607, 163050, 171493, 179935, 188378, 196822, 205264, 213707, 222150, 230592, 239035, 247477, 255920, 264364, 272804, 281248, 289691, 298133, 306576, 315019,
                           323461, 331904, 340348, 348790, 357233, 365676, 374118, 382561, 391003, 399446, 407890, 416332, 424775, 433218, 441660, 450103, 458547, 466989, 475432, 483875, 492317, 500760, 509203, 517645, 526089, 534532, 542974, 551417, 559858, 568301, 576744, 585186, 593629, 602073, 610515, 618958]]
    hit3 = 1
    CD = 180

    MP = [2600, 5300]
    无色消耗 = 10


class 技能25(主动技能):
    名称 = '双龙流云灭'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.071) for i in [0, 39619, 43637, 47656, 51676, 55695, 59714, 63734, 67753, 71772, 75792, 79811, 83830, 87851, 91869, 95888, 99908, 103927, 107946, 111965, 115985, 120004, 124023, 128043, 132062, 136081, 140101, 144120, 148139, 152159, 156178, 160197, 164216, 168236, 172255,
                              176274, 180294, 184313, 188331, 192350, 196370, 200390, 204410, 208429, 212448, 216467, 220487, 224506, 228525, 232545, 236563, 240582, 244601, 248621, 252640, 256659, 260680, 264699, 268718, 272738, 276757, 280776, 284795, 288814, 292833, 296852, 300872, 304891, 308910, 312930, 316950]]
    hit0 = 3
    data1 = [int(i*1.071) for i in [0, 6604, 7273, 7943, 8613, 9282, 9952, 10623, 11293, 11962, 12632, 13302, 13971, 14642, 15312, 15982, 16651, 17321, 17991, 18660, 19331, 20001, 20671, 21340, 22010, 22681, 23351, 24020, 24690, 25360, 26029, 26699, 27370, 28039, 28709,
                              29379, 30049, 30719, 31389, 32059, 32728, 33398, 34068, 34738, 35408, 36078, 36748, 37417, 38087, 38758, 39428, 40097, 40767, 41437, 42106, 42776, 43447, 44117, 44786, 45456, 46126, 46795, 47466, 48136, 48806, 49475, 50145, 50815, 51486, 52155, 52825]]
    hit1 = 2
    CD = 60.0

    MP = [773, 6000]
    无色消耗 = 7


class 技能26(被动技能):
    名称 = '一身是胆'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能27(主动技能):
    名称 = '问鼎·千军破云'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.092) for i in [0, 51209, 63085, 74959, 86834, 98709, 110584, 122458, 134333, 146208, 158082, 169958, 181832, 193708, 205582, 217456, 229331, 241206, 253080, 264956, 276830, 288706, 300580, 312454, 324330, 336204, 348079, 359954, 371829, 383703, 395578, 407453, 419327, 431203, 443077,
                              454953, 466827, 478701, 490577, 502451, 514326, 526201, 538076, 549950, 561825, 573699, 585575, 597449, 609324, 621199, 633074, 644948, 656823, 668698, 680572, 692448, 704322, 716198, 728072, 739946, 751822, 763696, 775571, 787446, 799320, 811195, 823070, 834945, 846819, 858694, 870569]]
    hit0 = 1
    data1 = [int(i*1.092) for i in [0, 30725, 37850, 44975, 52100, 59225, 66351, 73476, 80599, 87724, 94849, 101975, 109100, 116225, 123350, 130474, 137599, 144724, 151849, 158974, 166099, 173223, 180348, 187473, 194598, 201723, 208848, 215972, 223097, 230222, 237347, 244472, 251597, 258722, 265846,
                              272971, 280096, 287221, 294346, 301471, 308596, 315720, 322845, 329970, 337095, 344220, 351345, 358469, 365594, 372719, 379844, 386969, 394094, 401218, 408343, 415468, 422593, 429718, 436843, 443968, 451092, 458217, 465342, 472467, 479592, 486717, 493843, 500966, 508091, 515216, 522342]]
    hit1 = 5
    data2 = [int(i*1.092) for i in [0, 76815, 94626, 112439, 130252, 148063, 165876, 183688, 201500, 219312, 237124, 254936, 272749, 290560, 308373, 326184, 343997, 361808, 379621, 397434, 415245, 433058, 450870, 468682, 486494, 504306, 522118, 539931, 557742, 575555, 593368, 611179, 628992, 646804, 664616, 682428,
                              700240, 718052, 735865, 753676, 771489, 789302, 807113, 824925, 842737, 860550, 878361, 896174, 913986, 931798, 949610, 967422, 985234, 1003047, 1020858, 1038671, 1056484, 1074295, 1092108, 1109920, 1127732, 1145544, 1163356, 1181168, 1198981, 1216792, 1234605, 1252418, 1270229, 1288041, 1305853]]
    hit2 = 4
    CD = 290.0

    MP = [4028, 8056]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'skirmisher'
        self.名称 = '千魂·决战者'
        self.角色 = '魔枪士'
        self.角色类型 = '输出'
        self.职业 = '决战者'

        self.武器选项 = ['长枪']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '长枪'
        self.防具类型 = '轻甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.00

        super().__init__()
